The technologies supporting automated data processing of customer data have matured rapidly and become quite powerful in a relatively short time period. As a result, processing system hardware is now powerful enough and fast enough to execute complex calculations on large volumes of customer data for a multitude of purposes. The rapid advances in processing system hardware, however, tend to outpace corresponding advances in software.
As one example, past approaches to processing customer data, such as preparing invoices, generally relied upon inflexible hard-coded relationships among the various system components. While the software might have captured the desired processing steps at the time the software was written, its hard-coded nature made the software inflexible, and in some cases, unsuitable for the software owner at a later date. With such software, the software owner could only initiate changes, if at all, through an expensive, time consuming re-programming process that required a software vendor programmer to modify the software by hand to suit customer specifications.
Even when a software owner was willing to incur the expense and delay, the modified software still had drawbacks. As an example, every custom software release requires individuals to track, understand, and support the software. Consequently, custom software increased the costs for the software vendor as well as the software owner, and led to a general lack of standardization that hampered efficient production, delivery, and support of the software.
The software inflexibility problem is often most severe where the owner's business changes over time. The owners of data processing systems to manage customer financial accounts often have businesses that evolve over time. For example, many businesses develop from single service organizations when they start business to complex organizations that include multiple lines of business. The multiple lines of business can bring the need for multiple customer accounts each having multiple products and billing requirements. The data processing systems that are used by these organizations often lack the flexibility to support the multiple lines of business. Accordingly, a need existed for an automated data processing method that can accommodate variable financial account and billing requirements for multiple customer financial relationships, and that will allow the software owner to develop or change the system operation on an on-going basis.